iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 13
1
Security

新手眼中的資安系列 第 13

[Day13]-新手的Web系列XSS 0x6

  • 分享至 

  • xImage
  •  

Day13-新手的Web系列XSS 0x6

正文

  • 讀取cookie
    在javascript中讀取cookie:

    • console.log(document.cookie);
    • 讀取出來的document.cookie會是一個字串,這個字串是這個網域底下所有的cookie,然後會用分號分開,每個的形式都是[cookie name]=[cookie value],例如:name=macaron;gender=girl
  • 寫入cookie

    • document.cookie='key=value';
    • 新增的同時,原本的cookie並不會被覆蓋住,只有我們指定的key會更新
  • cookie的參數
    新增參數的方法是用分號做區隔

    • user:macaron;path=/
    • Domainpath:設定cookie的使用範圍
    • expiresMax-Age:設定cookie的使用期限
    • HttpOnlysecureSameSite:設定cookie安全性
  • Domain:

    • domain=macaron.com
    • 哪些網域可以存取這個cookie
    • 預設值是當前網域,不包含子網域,例如在macaron.com底下設置cookie,不指定domain的情況下,只有macaron.com可以存取此cookie,子網域如blog.macaron.com是無法存取的
  • path:

    • path=/admin
    • 指哪些路徑可以存取這個cookie
    • path 的預設值是當前的路徑
    • 假設domain=macaron.compath=/admin,那macaron.com/admin、子路徑如macaron.com/admin/file都是可以存取此cookie的,但是macaron.commacaron.com/home則是無法存取的
    • 一般來說認證用途的cookie會設定成path=/,是為了讓全站都可以存取此cookie
  • expires:

    • cookie=value;expires=True,22 May 2050 10:10:01 GMT
    • UTC格式表示有效期限
    • 如果沒有額外設定expires、max-age,那當瀏覽器關閉後,儲存在瀏覽器的cookie就會消失,這就是sesion cookie
    • 在javascript中,可以用data.toUTCString()取得
  • max-age:

    • cookie=value;max-age=4800
    • 表示從設定後開始算,之後幾秒是有效的
  • httponly:

    • 防止javascript存取cookie
    • 設置了這個屬性之後,javascript就不能存取這個cookie,但是在瀏覽器發送request的時候還是會加在request header裡面
    • 就是為了防止XSS
  • secure:

    • 讓cookie只能透過https傳送
    • cookie預設是不分http或是https的
  • samesite:

    • 防止cookie以跨站的方式傳送
    • 這個屬性就是為了防止CSRF(跨站請求偽造)
    • 一共有三種不同設定,分別對應不同的安全層級
      • strict
      • lax
      • none

上一篇
[Day12]-新手的Web系列XSS 0x5
下一篇
[Day14]-新手的crypto系列密碼學介紹
系列文
新手眼中的資安30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言